package yh.core.util.mail;

import java.util.Properties;

import yh.core.global.YHSysProps;
import yh.core.util.YHUtility;
import yh.core.util.form.YHFOM;

/**
 * 发送邮件信息类
 * @author jpt
 *
 */
public class YHMailSenderInfo {
  // 发送邮件的服务器的IP和端口
  private String mailServerHost = null;
  private String mailServerPort = "25";
  // 邮件发送者的地址
  private String fromAddress = null;
  // 邮件接收者的地址
  private String toAddress = null;
  // 登陆邮件发送服务器的用户名和密码
  private String userName = null;
  private String password = null;
  // 是否需要身份验证
  private boolean validate = false;
  // 邮件主题
  private String subject = null;
  // 邮件的文本内容
  private String content = null;
  // 邮件附件的文件名
  private String[] attachFileNames = null;
  
  public static YHMailSenderInfo build(String propKey) {
    String confProps = YHSysProps.getString(propKey);
    if (YHUtility.isNullorEmpty(confProps)) {
      return null;
    }
    try {
      return (YHMailSenderInfo)YHFOM.json2Obj(confProps, YHMailSenderInfo.class);
    }catch(Exception ex) {
      return null;
    }
  }

  /** */
  /**
   * 获得邮件会话属性
   */
  public Properties getProperties() {
    Properties p = new Properties();
    p.put("mail.smtp.host", this.mailServerHost);
    p.put("mail.smtp.port", this.mailServerPort);
    p.put("mail.smtp.auth", validate ? "true" : "false");
    return p;
  }

  public String getMailServerHost() {
    return mailServerHost;
  }

  public void setMailServerHost(String mailServerHost) {
    this.mailServerHost = mailServerHost;
  }

  public String getMailServerPort() {
    return mailServerPort;
  }

  public void setMailServerPort(String mailServerPort) {
    this.mailServerPort = mailServerPort;
  }

  public boolean isValidate() {
    return validate;
  }

  public void setValidate(boolean validate) {
    this.validate = validate;
  }

  public String[] getAttachFileNames() {
    return attachFileNames;
  }

  public void setAttachFileNames(String[] fileNames) {
    this.attachFileNames = fileNames;
  }

  public String getFromAddress() {
    return fromAddress;
  }

  public void setFromAddress(String fromAddress) {
    this.fromAddress = fromAddress;
  }

  public String getPassword() {
    return password;
  }

  public void setPassword(String password) {
    this.password = password;
  }

  public String getToAddress() {
    return toAddress;
  }

  public void setToAddress(String toAddress) {
    this.toAddress = toAddress;
  }

  public String getUserName() {
    return userName;
  }

  public void setUserName(String userName) {
    this.userName = userName;
  }

  public String getSubject() {
    return subject;
  }

  public void setSubject(String subject) {
    this.subject = subject;
  }

  public String getContent() {
    return content;
  }

  public void setContent(String textContent) {
    this.content = textContent;
  }
}
